﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


using LTorrent.Extensions;
namespace LTorrent.Peers
{//Содержит список пиров, их ID (опционально) IP и port
    public class Peer
    {
        public string ID
        {
            get;
            set;
        }
        public string IP
        {
            get;
            set;
        }
        public int Port
        {
            get;
            set;
        }

    

        public Peer(string id, string ip, string port)
        {//некомпакный ввод пира
            ID = id;
            IP = ip;
            int Temp;
            if (!Int32.TryParse(port, out Temp))
            {
                throw new ArgumentException("Невозможно получить порт соединения пира" + IP.ToString());
            }
            Port = Temp;
            
        }

        public Peer(byte[] CompactPeer)
        {//Получаем 1 IP пира  (с компактных данных)
            if (CompactPeer == null)
                throw new ArgumentNullException("Не определен peer");
            if (CompactPeer.Length != 6)
                throw new ArgumentException("Не задан peer");
            IP = CompactPeer.Take(4).ToArray().ConvertIPV4BytesToStringValue();
            Port = CompactPeer.Skip(4).Take(2).ToArray().ConvertPortBytesToInt32Value();
            ID = string.Empty;
        }
    }
}
